iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0
Build on Google AI

30 天使用 Antigravity 與 Google AI Studio 打造智慧教育 Agent系列 第 10

【Day 10】多模態備審前處理:PDF 閱讀與 Gemma 備審解析 AI

  • 分享至 

  • xImage
  •  

在完成了 Day 9 的 Gemma 4 穩定度封裝、429 退避重試與對話上下文截斷後,今天我們正式進入學生「學習歷程與備審自傳 PDF」的多模態前處理與解析 AI 模組搭建——PDF 多模態視覺與文字內容提取器 (PDFParserService)


1. 使用者提示詞 (User Prompt) 與多模態前處理需求

💬 User Prompt
「接下來 到了 Day10 我們需要來做 PDF 的資料多模態的內容取得工具的部分 內容可能有 "圖片"、"文字"、"圖表" 等等資訊 並有排版 (理論上) 幫我看一下這樣子的工具要怎麼完成。另外 因為有個資的關係 這部分的 pdf 和 tests ignore 掉。」

針對學生備審資料包含文字排版、嵌入式架構圖表、個人照與活動照片的多模態特性,我們設計了:

  1. 多頁面結構與文字洗淨提取 (Text & Layout Extraction):依頁面逐一提取純文字與排版結構。
  2. 內嵌視覺影像組件提取 (Visual Image Component Extraction):辨識與提取 PDF 內含之圖表 (Architecture Diagrams)、照片與證照圖片 Metadata (解析度、格式、大小)。
  3. Gemma-4-31B 多模態備審分析:對接 docs/system_prompts/application_multimodal_analysis.md 產出學習歷程亮點與教授可能質疑之盲點切入點。

2. 核心機制實作程式碼片段 (app/services/document_parser.py)

class PDFParserService:
    def extract_multimodal_components(self, pdf_bytes: bytes) -> Dict[str, Any]:
        """同時提取 PDF 頁面文字與內嵌視覺圖片圖表 Metadata"""
        reader = pypdf.PdfReader(io.BytesIO(pdf_bytes))
        page_summaries = []
        image_metadata_list = []

        for idx, page in enumerate(reader.pages, 1):
            page_text = page.extract_text() or ""
            page_img_details = []
            
            for img_idx, img_obj in enumerate(page.images, 1):
                pil_img = Image.open(io.BytesIO(img_obj.data))
                page_img_details.append(f"Image #{img_idx} ({pil_img.format}, {pil_img.size[0]}x{pil_img.size[1]} px)")
                image_metadata_list.append({"page": idx, "format": pil_img.format, "width": pil_img.size[0], "height": pil_img.size[1]})

            summary = f"=== [頁次 Page {idx}/{len(reader.pages)}] ===\n圖片圖表: {len(page.images)} 個\n文字:\n{page_text.strip()}\n"
            page_summaries.append(summary)

        return {"total_pages": len(reader.pages), "total_images": len(image_metadata_list), "full_document_text": "\n\n".join(page_summaries)}

    async def parse_multimodal_resume(self, pdf_bytes: bytes, target_school: str = "", target_major: str = "") -> Dict[str, Any]:
        """端到端多模態解析:PDF 提取 ➔ Gemma-4-31B 解析亮點與盲點"""
        components = self.extract_multimodal_components(pdf_bytes)
        analysis_result = await gemma_client.invoke_with_system_prompt(
            prompt_name="application_multimodal_analysis",
            target_major=target_major,
            document_content=components["full_document_text"][:8000]
        )
        return {"total_pages": components["total_pages"], "total_images": components["total_images"], "multimodal_analysis_result": analysis_result}

3. 測試 Demo 與去識別化實機輸出紀錄 (De-identified Live Execution Demo)

測試檔案:備審歷程 PDF 資料(含成績單、專題架構圖與活動證明)。

實機終端機測試對話紀錄 (scripts/run_day10_live_test.py)

==================================================
UniMock AI - Day 10 Multimodal PDF Content Extractor Test
==================================================
Target PDF File: test_files/candidate_resume_portfolio.pdf (PII Protected)

--- [Step 1] Multimodal Extraction (Text, Layout & Image Components) ---
Total Pages: 6
Total Embedded Image Components: 10
Embedded Images Metadata List:
  - Page 1: 360x445 px (JPEG) - 個人大頭相片與聯絡區塊
  - Page 2: 524x213 px (PNG)  - 核心專題架構圖
  - Page 4: 524x213 px (PNG)  - 物件偵測架構圖
  - Page 5: 444x333 px (JPEG) - 資訊社團幹部活動照
  - Page 6: 444x333 px (JPEG) - 雲端工作坊與系學會活動照

--- [Step 2] Live Multimodal Analysis with Gemma-4-31B ---

Gemma Multimodal Analysis Output Result:

這是一位背景極其強悍的資工系申請者。其特點在於 ....

### 1. Key Highlights (核心亮點解析)
....

### 2. 潛在弱點與挑戰切入點 (Potential Vulnerabilities)
....

### 3. 面試教授最可能抽考的發問切入點
....

==================================================
Day 10 Multimodal PDF Test Completed Successfully!
==================================================

結語與明天預告

今天我們完成了 PDF 多模態視覺圖表與文字前處理服務 (PDFParserService),成功讓 Gemma 4 具備閱讀學生真實 PDF 備審、提取 10 個內嵌圖表元件與精準剖析亮點盲點的能力。

明天 【Day 11】,我們將進入 專案系統設計,在 Day1 ~ Day10 的過程,我們準備並測試好各項重要功能的可行性,在 Day11 的階段,我們將開始進行完整的專案開發,開始將專案一步一步實現出來。


上一篇
【Day 9】模組化大腦:LLM 後端 Client 穩定度、429 重試與對話上下文管理模組封裝
系列文
30 天使用 Antigravity 與 Google AI Studio 打造智慧教育 Agent10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言